home *** CD-ROM | disk | FTP | other *** search
/ TeX 1995 July / TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO / graphics / circuit_macros / darrow.m4 < prev    next >
Text File  |  1994-03-13  |  2KB  |  56 lines

  1. divert(-1)
  2. darrow.m4
  3.                 Macros for double lines and arrows
  4. m4 <path>/darrow.m4 <diag>.m4 | dpic [-p] [-t] > <diag>.tex , or
  5. m4 <path>/darrow.m4 <diag>.m4 | gpic [-t] > <diag>.tex
  6.  
  7. define(`HOMELIB_',`/u/aplevich/lib')
  8. ifdef(`dir_',,`include(HOMELIB_/libgen.m4)')
  9. define(`elen_',linewid)
  10.  
  11. divert(-1)
  12.                 Close off line end
  13. define(`dend',`{line from rvec_(0,-dlinewid/2) to rvec_(0,dlinewid/2)}')
  14.                 Dline initialization
  15. define(`eleminit_',`ifelse(`$1',,`eleng=elen_',
  16.    `rpoint_(`$1') dnl
  17.    eleng=sqrt(elendx*elendx + elendy*elendy)' )' dnl
  18.    ) dnl
  19. define(`dlineinit_',`eleminit_(`$1')
  20.    lwid=ifelse(`$4',,dlinewid,`$4')
  21.    llen=eleng ifelse(`$3',,,`-lwid/2') dnl
  22.    ifelse(`$2',,,`-lwid/2; move to rvec_(lwid/2,0)') ')
  23.                 Line(line spec,start truncation,end truncation,width)
  24. define(`dline',`dlineinit_(`$1',`$2',`$3',`$4')
  25.   {line from rvec_(0, lwid/2) to rvec_(llen, lwid/2)}
  26.   {line from rvec_(llen,-lwid/2) to rvec_(0,-lwid/2)}
  27.    line invis to rvec_(llen,0)')
  28.                 Turn left, leaving current location at exit of corner
  29. define(`dleft',`dnl
  30.   {line from rvec_(0,-dlinewid/2) to rvec_(dlinewid,-dlinewid/2) \
  31.    then to rvec_(dlinewid,dlinewid/2)}
  32.    line invis to rvec_(dlinewid/2,dlinewid/2)
  33.    define(`dir_',up__) manhattan dir_')
  34.                 Turn right, leaving current location at exit of corner
  35. define(`dright',`dnl
  36.   {line from rvec_(0, dlinewid/2) to rvec_(dlinewid, dlinewid/2) \
  37.    then to rvec_(dlinewid,-dlinewid/2)}
  38.    line invis to rvec_(dlinewid/2,-dlinewid/2)
  39.    define(`dir_',dn_) manhattan dir_')
  40.                 Arrow(line spec,start truncation,end truncation,width)
  41. define(`darrow',`dlineinit_(`$1',`$2',`$3',`$4')
  42.   {line from rvec_(0,lwid/2) to rvec_(llen-lwid*3/2,lwid/2) \
  43.    then to rvec_(llen-lwid*3/2,lwid) then to rvec_(llen,0) \
  44.    then to rvec_(llen-lwid*3/2,-lwid) then to rvec_(llen-lwid*3/2,-lwid/2) \
  45.    then to rvec_(0,-lwid/2)}
  46.    line invis to rvec_(llen,0)')
  47.                 Construct tee, leaving current location at tee centre
  48. define(`dtee',`move to rvec_(dlinewid/2,0); $1; move to rvec_(-dlinewid/2,0) 
  49.    {line from rvec_(dlinewid,-dlinewid/2) to rvec_(dlinewid,dlinewid/2)}
  50.    {line from rvec_(0,-dlinewid/2) to rvec_(0,-dlinewid/2)}
  51.    {line from rvec_(0, dlinewid/2) to rvec_(0, dlinewid/2)}
  52.    move to rvec_(dlinewid/2,0)')
  53.                 Standard width of lines
  54. define(`dlinewid',`0.08')
  55. divert
  56.